{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "IvufQ90W_ILK",
    "tags": []
   },
   "source": [
    "### Basic Intro \n",
    "\n",
    "In this competition, you’re challenged to build a machine learning model that predicts which Tweets are about real disasters and which one’s aren’t.\n",
    "\n",
    "![](https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcTigQWzoYCNiDyrz1BN4WTf2X2k9OZ_yvW-FsmcIMsdS9fppNmh)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "EG9UlaLI_ILQ",
    "tags": []
   },
   "source": [
    "## What's in this kernel?\n",
    "- Basic EDA\n",
    "- Data Cleaning\n",
    "- Baseline Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Z7CAwrRLgliq",
    "tags": []
   },
   "source": [
    "# Unzipping the file"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "OypqduLZ_ILS",
    "tags": []
   },
   "source": [
    "### Importing required Libraries."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "tags": [
     "block:"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Defaulting to user installation because normal site-packages is not writeable\n",
      "Requirement already satisfied: seaborn in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (0.11.2)\n",
      "Requirement already satisfied: nltk in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 2)) (3.6.7)\n",
      "Requirement already satisfied: sklearn in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 3)) (0.0)\n",
      "Requirement already satisfied: collection in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 4)) (0.1.6)\n",
      "Requirement already satisfied: gensim in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 5)) (4.1.2)\n",
      "Requirement already satisfied: keras in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 6)) (2.6.0)\n",
      "Requirement already satisfied: tensorflow in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 7)) (2.6.2)\n",
      "Requirement already satisfied: pyspellchecker in /home/jovyan/.local/lib/python3.6/site-packages (from -r requirements.txt (line 8)) (0.6.3)\n",
      "Collecting zipfile36\n",
      "  Downloading zipfile36-0.1.3-py3-none-any.whl (20 kB)\n",
      "Collecting wget\n",
      "  Downloading wget-3.2.zip (10 kB)\n",
      "  Preparing metadata (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25hRequirement already satisfied: pandas>=0.23 in /usr/local/lib/python3.6/dist-packages (from seaborn->-r requirements.txt (line 1)) (1.1.5)\n",
      "Requirement already satisfied: scipy>=1.0 in /usr/local/lib/python3.6/dist-packages (from seaborn->-r requirements.txt (line 1)) (1.5.4)\n",
      "Requirement already satisfied: matplotlib>=2.2 in /usr/local/lib/python3.6/dist-packages (from seaborn->-r requirements.txt (line 1)) (3.3.4)\n",
      "Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.6/dist-packages (from seaborn->-r requirements.txt (line 1)) (1.19.5)\n",
      "Requirement already satisfied: joblib in /usr/local/lib/python3.6/dist-packages (from nltk->-r requirements.txt (line 2)) (1.1.0)\n",
      "Requirement already satisfied: click in /usr/local/lib/python3.6/dist-packages (from nltk->-r requirements.txt (line 2)) (7.1.2)\n",
      "Requirement already satisfied: regex>=2021.8.3 in /home/jovyan/.local/lib/python3.6/site-packages (from nltk->-r requirements.txt (line 2)) (2022.3.15)\n",
      "Requirement already satisfied: tqdm in /home/jovyan/.local/lib/python3.6/site-packages (from nltk->-r requirements.txt (line 2)) (4.64.0)\n",
      "Requirement already satisfied: scikit-learn in /usr/local/lib/python3.6/dist-packages (from sklearn->-r requirements.txt (line 3)) (0.23.2)\n",
      "Requirement already satisfied: smart-open>=1.8.1 in /home/jovyan/.local/lib/python3.6/site-packages (from gensim->-r requirements.txt (line 5)) (5.2.1)\n",
      "Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/dist-packages (from gensim->-r requirements.txt (line 5)) (0.8)\n",
      "Requirement already satisfied: opt-einsum~=3.3.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (3.3.0)\n",
      "Requirement already satisfied: wrapt~=1.12.1 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (1.12.1)\n",
      "Requirement already satisfied: google-pasta~=0.2 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (0.2.0)\n",
      "Requirement already satisfied: typing-extensions~=3.7.4 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (3.7.4.3)\n",
      "Requirement already satisfied: h5py~=3.1.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (3.1.0)\n",
      "Requirement already satisfied: protobuf>=3.9.2 in /usr/local/lib/python3.6/dist-packages (from tensorflow->-r requirements.txt (line 7)) (3.19.3)\n",
      "Requirement already satisfied: six~=1.15.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (1.15.0)\n",
      "Requirement already satisfied: wheel~=0.35 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (0.37.1)\n",
      "Requirement already satisfied: clang~=5.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (5.0)\n",
      "Requirement already satisfied: grpcio<2.0,>=1.37.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow->-r requirements.txt (line 7)) (1.43.0)\n",
      "Requirement already satisfied: gast==0.4.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (0.4.0)\n",
      "Requirement already satisfied: flatbuffers~=1.12.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (1.12)\n",
      "Requirement already satisfied: termcolor~=1.1.0 in /usr/local/lib/python3.6/dist-packages (from tensorflow->-r requirements.txt (line 7)) (1.1.0)\n",
      "Requirement already satisfied: keras-preprocessing~=1.1.2 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (1.1.2)\n",
      "Requirement already satisfied: astunparse~=1.6.3 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (1.6.3)\n",
      "Requirement already satisfied: tensorflow-estimator<2.7,>=2.6.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (2.6.0)\n",
      "Requirement already satisfied: tensorboard<2.7,>=2.6.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorflow->-r requirements.txt (line 7)) (2.6.0)\n",
      "Requirement already satisfied: absl-py~=0.10 in /usr/local/lib/python3.6/dist-packages (from tensorflow->-r requirements.txt (line 7)) (0.11.0)\n",
      "Requirement already satisfied: cached-property in /home/jovyan/.local/lib/python3.6/site-packages (from h5py~=3.1.0->tensorflow->-r requirements.txt (line 7)) (1.5.2)\n",
      "Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=2.2->seaborn->-r requirements.txt (line 1)) (2.8.2)\n",
      "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=2.2->seaborn->-r requirements.txt (line 1)) (1.3.1)\n",
      "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=2.2->seaborn->-r requirements.txt (line 1)) (8.4.0)\n",
      "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=2.2->seaborn->-r requirements.txt (line 1)) (3.0.6)\n",
      "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib>=2.2->seaborn->-r requirements.txt (line 1)) (0.11.0)\n",
      "Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas>=0.23->seaborn->-r requirements.txt (line 1)) (2021.3)\n",
      "Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (2.27.1)\n",
      "Requirement already satisfied: werkzeug>=0.11.15 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (2.0.3)\n",
      "Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (0.4.6)\n",
      "Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (0.6.1)\n",
      "Requirement already satisfied: google-auth<2,>=1.6.3 in /usr/local/lib/python3.6/dist-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (1.35.0)\n",
      "Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (59.6.0)\n",
      "Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (1.8.1)\n",
      "Requirement already satisfied: markdown>=2.6.8 in /home/jovyan/.local/lib/python3.6/site-packages (from tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (3.3.6)\n",
      "Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from scikit-learn->sklearn->-r requirements.txt (line 3)) (3.0.0)\n",
      "Requirement already satisfied: importlib-resources in /usr/local/lib/python3.6/dist-packages (from tqdm->nltk->-r requirements.txt (line 2)) (5.4.0)\n",
      "Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (4.8)\n",
      "Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (0.2.8)\n",
      "Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (4.2.4)\n",
      "Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (1.3.0)\n",
      "Requirement already satisfied: importlib-metadata>=4.4 in /usr/local/lib/python3.6/dist-packages (from markdown>=2.6.8->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (4.8.3)\n",
      "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (1.26.8)\n",
      "Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (2.0.10)\n",
      "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (2021.10.8)\n",
      "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (3.3)\n",
      "Requirement already satisfied: zipp>=3.1.0 in /usr/local/lib/python3.6/dist-packages (from importlib-resources->tqdm->nltk->-r requirements.txt (line 2)) (3.6.0)\n",
      "Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.6/dist-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.3->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (0.4.8)\n",
      "Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard<2.7,>=2.6.0->tensorflow->-r requirements.txt (line 7)) (3.1.1)\n",
      "Building wheels for collected packages: wget\n",
      "  Building wheel for wget (setup.py) ... \u001b[?25ldone\n",
      "\u001b[?25h  Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9675 sha256=7494539bc3322689677bdc668e46be6e09fc409ca4c7942e315d8d83afb78000\n",
      "  Stored in directory: /home/jovyan/.cache/pip/wheels/90/1d/93/c863ee832230df5cfc25ca497b3e88e0ee3ea9e44adc46ac62\n",
      "Successfully built wget\n",
      "Installing collected packages: zipfile36, wget\n",
      "Successfully installed wget-3.2 zipfile36-0.1.3\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "pip install -r requirements.txt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "# Importing Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "BfxrbE88_ILS",
    "outputId": "b71ee66f-a5d2-46ad-924a-d4f1ea986aa5",
    "tags": [
     "imports"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[nltk_data] Downloading package stopwords to /home/jovyan/nltk_data...\n",
      "[nltk_data]   Package stopwords is already up-to-date!\n",
      "[nltk_data] Downloading package punkt to /home/jovyan/nltk_data...\n",
      "[nltk_data]   Package punkt is already up-to-date!\n"
     ]
    }
   ],
   "source": [
    "import re\n",
    "import nltk\n",
    "import gensim\n",
    "import string\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from tqdm import tqdm\n",
    "\n",
    "from nltk.tokenize import word_tokenize\n",
    "\n",
    "from nltk.corpus import stopwords\n",
    "from nltk.util import ngrams\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "from collections import defaultdict\n",
    "from collections import  Counter\n",
    "\n",
    "from tensorflow.keras.preprocessing.text import Tokenizer\n",
    "from tensorflow.keras.preprocessing.sequence import pad_sequences\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Embedding,LSTM,Dense,SpatialDropout1D\n",
    "from tensorflow.keras.initializers import Constant\n",
    "from tensorflow.keras.optimizers import Adam\n",
    "\n",
    "nltk.download('stopwords')\n",
    "nltk.download('punkt')\n",
    "stop=set(stopwords.words('english'))\n",
    "plt.style.use('ggplot')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "id": "zVmloKw7_ILV",
    "tags": []
   },
   "outputs": [],
   "source": [
    "import os\n",
    "#os.listdir('../input/glove-global-vectors-for-word-representation/glove.6B.100d.txt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "2Ut5Ko9G_ILW",
    "tags": []
   },
   "source": [
    "## Load data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 143
    },
    "id": "I8aHh7_l_ILW",
    "outputId": "0f90d9ba-0307-4917-d128-cbb3b49b77fa",
    "tags": [
     "block:load_data"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>keyword</th>\n",
       "      <th>location</th>\n",
       "      <th>text</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Our Deeds are the Reason of this #earthquake M...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Forest fire near La Ronge Sask. Canada</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>All residents asked to 'shelter in place' are ...</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id keyword location                                               text  \\\n",
       "0   1     NaN      NaN  Our Deeds are the Reason of this #earthquake M...   \n",
       "1   4     NaN      NaN             Forest fire near La Ronge Sask. Canada   \n",
       "2   5     NaN      NaN  All residents asked to 'shelter in place' are ...   \n",
       "\n",
       "   target  \n",
       "0       1  \n",
       "1       1  \n",
       "2       1  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tweet= pd.read_csv('./data/train.csv')\n",
    "test=pd.read_csv('./data/test.csv')\n",
    "tweet.head(3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "WX64jB83_ILX",
    "outputId": "314e9aad-8fb4-4c60-cb5d-3f91027a024c",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "There are 7613 rows and 5 columns in train\n",
      "There are 3263 rows and 4 columns in train\n"
     ]
    }
   ],
   "source": [
    "print('There are {} rows and {} columns in train'.format(tweet.shape[0],tweet.shape[1]))\n",
    "print('There are {} rows and {} columns in train'.format(test.shape[0],test.shape[1]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "ebUgRyjU_ILY",
    "tags": []
   },
   "source": [
    "## Class distribution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "KrbMbAtc_ILZ",
    "tags": []
   },
   "source": [
    "Before we begin with anything else,let's check the class distribution.There are only two classes 0 and 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 337
    },
    "id": "7nfbgY5l_ILa",
    "outputId": "e06bfc19-14a8-4c5d-af3b-6434a97af380",
    "tags": [
     "block:",
     "prev:load_data"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jovyan/.local/lib/python3.6/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n",
      "  FutureWarning\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'samples')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x=tweet.target.value_counts()\n",
    "sns.barplot(x.index,x)\n",
    "plt.gca().set_ylabel('samples')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "P-nrzD3F_ILa",
    "tags": []
   },
   "source": [
    "ohh,as expected ! There is a class distribution.There are more tweets with class 0 ( No disaster) than class 1 ( disaster tweets)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "b_ZgxS9Y_ILb",
    "tags": []
   },
   "source": [
    "## Exploratory Data Analysis of tweets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "bwdYFByW_ILb",
    "tags": []
   },
   "source": [
    "First,we will do very basic analysis,that is character level,word level and sentence level analysis."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "KDzMFkEa_ILb",
    "tags": []
   },
   "source": [
    "### Number of characters in tweets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 356
    },
    "id": "GPRFNeTn_ILc",
    "outputId": "40b4b4a3-2cb7-46df-8547-ccf2b6f5cd0e",
    "tags": [
     "block:eda_data",
     "prev:load_data"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "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QXh4OHJycu57v4i6gy1btuDEiRM4ePBgq/eys7MxdOjQFud7uri44OGHH0Z2dvY9tXP27FkMGTIEjo6O0rJHHnkEDg4O7X7m0UcfxVNPPYVHHnkEM2bMwF//+ldcuXKlxTrvv/8+Ro8eDRcXF9jZ2WHNmjUtzhvraOxsy72MIaNGjepsF7QwZswYWFhYICkpCceOHUP//v3xwgsvID09HZWVlUhISICvry+sra2lmiIjI1vUNHToUADAhQsXUFxcjIKCAqxatarFOlOmTAEA6fBtW+7n/4cHhYWpCyDjeemll/CrX/0K//nPf3D06FFMmTIFM2bMwJ49e1BTU4PJkydj/PjxiI2NhYuLCwDA29tbOpHczc0N58+fx9GjR5GQkIC33noLq1evxjfffAMPD48222xqagIAnDx5EjY2Ni3eu/MqoJ9zsmlAQABCQ0Nx9uxZVFZW4oknnkBAQAASEhLQ2NiIAQMGYODAgVJNQ4YMwf79+1tt51aNTU1NmDRpEmJiYlqtc7dBHGgepFesWIGvvvoK//3vf/GnP/0JMTEx+MMf/nDf+0dkzgYPHow//OEPWL16Nb788ktTl9OCUqnEl19+idTUVMTHx+Pf//43wsLC8Mknn+Dpp5/GJ598gqVLlyI8PBx+fn6wt7fHJ5980uLcpbuNne3p7BiiVCrRp0+f+9o3KysrjB07FkeOHIGlpSUCAgLg7OyMhx9+GElJSUhISMCvf/3rFjWtXr26zXNY+/btK51H9de//hVPPvlkq3VuP5f1Tvfz/8MDw9RTZtSxqqoqYWlp2epQoI+Pz10PBd7pn//8pwAgKioqRFpamgAgnWMkhBAnTpwQAERsbGybn6+trRUODg4iKipKCCHEli1bhLu7e4t1Lly4IACIzz///K77BEDs3r37ruu014YQ///ww+9//3sxdepUIUTzIQCtVit+85vftDjMuHPnTmFjYyMKCwvbbee1114T7u7u4saNG+2u869//UsAEA0NDXet+Q9/+IN47LHHOto1om7l9kOBQghRVFQk7O3txZo1azp9KPCjjz4SQnT+d+nWocCysjJp2ZkzZ+56KLAtTz31lJg5c6YQQohly5aJJ554osX7CxcuvOuhydvHTiGEGDJkiHjttddarNOZMSQ2NlYolcp2379dW20I0Xx6xKOPPip8fHzEvn37hBBCLF++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\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,5))\n",
    "tweet_len=tweet[tweet['target']==1]['text'].str.len()\n",
    "ax1.hist(tweet_len,color='red')\n",
    "ax1.set_title('disaster tweets')\n",
    "tweet_len=tweet[tweet['target']==0]['text'].str.len()\n",
    "ax2.hist(tweet_len,color='green')\n",
    "ax2.set_title('Not disaster tweets')\n",
    "fig.suptitle('Characters in tweets')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "kMl21V0z_ILc",
    "tags": []
   },
   "source": [
    "The distribution of both seems to be almost same.120 t0 140 characters in a tweet are the most common among both."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "6TeqztFR_ILd",
    "tags": []
   },
   "source": [
    "### Number of words in a tweet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 356
    },
    "id": "v7SANwhp_ILd",
    "outputId": "70e79903-970e-4735-8246-00acb2753453",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlYAAAFTCAYAAAD7gEIxAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA3NElEQVR4nO3deXhU5d3G8XtISEL21dgJa1ispqiURFCWIEQoom3cqCJWapHaVDa1BakKFtEgYmiQVgWNirZW3tZofVu1MRAQxCYmCIIQCEuRiCELMQtLluf9g4t5GZOQACczE/h+rstL5sxZfudkzpM7z3nOHJsxxggAAADnrJO7CwAAADhfEKwAAAAsQrACAACwCMEKAADAIgQrAAAAixCsAAAALEKwAtBu5s2bp4kTJ57xcnFxcVqzZo31BQFAOyNYAReQp556SmPHjnWa1rdv32anvfnmm64szcnWrVs1YsSIdt/OpEmT9Mgjj7T7dk61Zs0ade3a1aXbBOA6BCvgAjJ8+HBt2LBBDQ0NkqSvv/5adXV1KigocJq2a9cuDR8+/IzWXV9fb3m9ANDREKyAC0hCQoLq6uq0adMmSdK6det07bXX6pJLLnGa1rt3b9ntdhUXF+vHP/6xwsPD1adPHy1fvtyxrnnz5unWW2/VxIkTFRwcrFdeeUV79uxRYmKigoKCdN1116m0tNQx/9GjRzVx4kRFREQoNDRUCQkJ+uabb5qts2fPnsrKynJsZ/z48frZz36moKAgxcXFKS8vr8V9nD59urp166bg4GANHDhQ69ata3a+F198UW+88YaefvppBQYG6sYbb1RGRoZuvPFGxzx9+/bVbbfd5njdrVs3x3Havn27rrvuOoWHh+uSSy7RW2+95Zjv2LFjeuihh9S9e3dFR0frvvvu05EjR1RTU6OxY8equLhYgYGBCgwMVHFxcYv7AqDjIVgBFxAfHx8NGjRIa9eulSStXbtWw4YN09ChQ52mneytuv3229W1a1cVFxfrf/7nfzRnzhxlZ2c71vfOO+/o1ltv1eHDh3XnnXdqwoQJGjhwoEpLS/Xoo4/q1Vdfdcz76quvqrKyUvv371dZWZmef/55denSpU11v/vuu7r99tt1+PBh/fjHP9b999/f4rwJCQnatGmTysvLNWHCBN122206evRok/mmTJmiO++8U7/97W9VXV2tf/zjH0pMTNS6devU2Nio4uJiHT9+XJ988okkaffu3aqurtbll1+umpoaXXfddZowYYJKSkr05ptvKiUlRdu2bZMkzZ49W4WFhdq0aZN27dqlAwcO6Pe//70CAgL0r3/9S3a7XdXV1aqurpbdbm/TMQDQMRCsgAtMYmKiI0StW7dOw4YN07Bhw5ymJSYmav/+/Vq/fr0WLlwoPz8/XXnllZo8ebJee+01x7quvvpqJScnq1OnTjp06JByc3M1f/58+fr6avjw4U69P507d1ZZWZl27dolLy8vDRw4UMHBwW2qeejQobr++uvl5eWlu+66S59//nmL857sFfP29taDDz6oY8eOaceOHW3aTmxsrIKCgrRp0yatXbtWY8aMkd1u1/bt25WTk6Nhw4apU6dOeu+999SzZ0/9/Oc/l7e3twYMGKBbbrlFq1atkjFGL774otLS0hQeHq6goCDNmTPHrWPWALiOt7sLAOBaw4cP17Jly1ReXq5Dhw6pb9++io6O1t13363y8nJ98cUXGj58uIqLix3B4KQePXo4XYbr1q2b49/FxcUKCwtTQECA0/z79++XJN11113av3+/o+dp4sSJWrBggTp37txqzRdffLHj3/7+/jp69Kjq6+vl7d20CXvmmWf00ksvqbi4WDabTd9++63TJcnWJCYmas2aNdq1a5cSExMVGhqqnJwcffLJJ0pMTJQk7du3T59++qlCQ0Mdy9XX1+uuu+7SoUOHVFtbq4EDBzreM8Y4xrABOL/RYwVcYK6++mpVVlZq+fLlGjJkiCQpODhYdrtdy5cvl91uV69evWS321VeXq6qqirHsv/9738VExPjeG2z2Rz//t73vqeKigrV1NQ4zX9S586dNXfuXG3btk0bNmzQe++959T7ZYV169bp6aef1ltvvaWKigodPnxYISEhMsY0O/+p9Z90Mlid7LlLTExUTk6OcnJyHMGqW7duSkxM1OHDhx3/VVdX609/+pMiIyPVpUsXbd261fFeZWWlqqurW9wmgPMHwQq4wHTp0kXx8fF69tlnNWzYMMf0oUOH6tlnn3WMr+rWrZuuueYaPfzwwzp69Kg2b96sl156qcXvperRo4fi4+M1d+5cHT9+XB9//LH+8Y9/ON5fvXq1tmzZooaGBgUHB6tz587q1MnaJqiqqkre3t6KiopSfX29fv/73+vbb79tcf7o6Gjt3r3baVpiYqJWr16tI0eOqGvXrho2bJjef/99lZWVacCAAZKkG264QYWFhVq5cqXq6upUV1en3Nxcffnll+rUqZPuvfdezZw5UyUlJZKkAwcO6IMPPnBss6ysTJWVlZbuOwDPQLACLkCJiYkqKSnR0KFDHdOGDRumkpISp69Z+Mtf/qK9e/fKbrfrpptu0uOPP66kpKQW1/vnP/9Zn376qcLDw/X444/rZz/7meO9gwcP6tZbb1VwcLAuvfRSJSYm6q677rJ0v8aMGaMf/ehH6tevn3r06CE/Pz+ny5Xf9Ytf/ELbtm1TaGiokpOTJUn9+vVTYGCgI3QGBwcrNjZWQ4YMkZeXlyQpKChIH374od58803Z7XZdfPHFmjVrlo4dOyZJWrhwofr06aPBgwcrODhYSUlJjnFe3//+93XHHXcoNjZWoaGh3BUInGdspqU+cgAAAJwReqwAAAAsQrACAACwCMEKAADAIgQrAAAAixCsAAAALEKwAgAAsAjBCgAAwCIEKwAAAIsQrDqwefPmqU+fPi2+BoDzUc+ePfXEE0+0+BpwJ4LVeeShhx7Sxo0bXba9J554Qj179uzw22ir119/nQfo4oI1adIk2Ww2/fa3v3Wa/tVXX8lms2nNmjVtXpfV51Jubq5mzpxp2fpa06dPH82bN6/Db6OtkpKSNGnSJHeX0WEQrM4jgYGBioyMdHcZZ+X48ePuLgFAK/z8/JSenq59+/a5uxQnUVFRCggIcHcZZ8wYo7q6OneXAYsRrDqIo0eP6le/+pVCQkIUFhamX/3qV44Hvp703UuBX331lW655RZFRkbKz89PsbGxWrRokeP9P//5zxo0aJBCQkIUGRmpcePGqbCw0GmdTz75pGJjY+Xr66uoqCiNGTNGR44c0SuvvKJHH31U+/btk81mk81mc/x1VVdXp3nz5qlXr17y8/NTXFycXnjhBaf12mw2paena8KECQoJCWn2YbwtbeOll15S165dHfPt2bNHNptNEydOdExbvny57Ha74/U333yjSZMmKSoqSkFBQRoyZIjWrl3rtL1du3bplltuUWhoqMLCwjR69Ght2bJFkrRmzRpHjSdrOfkX3Mcff6whQ4YoKChIQUFBuuKKK/TBBx80/4MEOrBrrrlGV1xxhebMmXPa+Xbs2KFx48YpMDBQgYGBuvHGG7Vr1y5Jpz+XmvP555/rmmuuka+vr/r27au33nqryTzfvRT4zjvvaMCAAfL391doaKiuuuoqFRQUSDoRZu6991717t1bXbp0UWxsrObMmePUnp6u7RwxYoSKior0+OOPO+rfu3evpNO3IdKJNs3b21urV6/WgAED5Ovrq6ysrCb709I2hg0bpt/97neO+ebOnSubzea0jiFDhujhhx92vP73v/+tIUOGqEuXLoqJidHPf/5zlZWVOW3vzTff1JVXXik/Pz/17NlTDzzwgGpqaiSd6Kn86KOP9OqrrzpqOdk72dLvhwueQYcwY8YMExUVZTIzM82XX35pHnzwQRMUFGR69+7tmGfu3LlOr2+88UYzatQoU1BQYPbs2WOys7PNn//8Z8f7L7/8snn33XfNrl27TH5+vrnxxhtNnz59zLFjx4wxxvztb38zQUFB5t133zX79u0zBQUFJi0tzdTW1pra2loza9Ys07VrV/P111+br7/+2lRVVRljjLn77rtN//79zQcffGB2795t3nzzTRMSEmJWrFjh2LYkEx4ebpYuXWp27dplCgsLm+xzS9soKioyksz27duNMcasWLHCREVFGbvd7lj29ttvNxMmTHCs59JLLzU333yzyc3NNTt37jRPPPGE8fHxMdu2bTPGGHPw4EETHR1t7rvvPrN582azfft2c//995vw8HBTUlJijh07Zp577jkjyVHL4cOHTV1dnQkLCzMzZ840hYWFprCw0Pz97383a9euPeefOeBJ7r77bjNq1Cizdu1aY7PZTG5urjHGmP379xtJZvXq1caYE+db9+7dzciRI01eXp7Jy8szI0aMML179zbHjh1r8VxqTm1trbHb7Wbs2LFm06ZNZsOGDSY+Pt506dLFzJ8/3zFfjx49HK+//vpr07lzZ7Nw4UKze/dus23bNvPGG2+YzZs3G2OMaWhoMHPmzDEbN240e/bsMe+88465+OKLzWOPPeZY3+nazrKyMtOzZ0/z4IMPOuqvr69vtQ0xxpiMjAxjs9lMQkKCyc7ONkVFRY73TtXSNh599FEzePBgx3xDhw41UVFR5uGHHzbGGFNVVWU6d+5sPvzwQ2OMMR999JHp0qWLSU9PN4WFheY///mPGTFihBk+fLhpbGx01BQaGmpee+01U1RUZHJyckz//v3NxIkTjTHGHD582AwbNsyMHz/eUcuxY8dO+/vhQkew6gCqq6uNr6+vefHFF52mDxw48LTB6vLLLzdz585t83bKysqMJPPxxx8bY4x59tlnTd++fc3x48ebnX/+/PmmR48eTtN2795tbDab+fLLL52mP/744+aKK65wvJZk7rnnnlZram4bxpxoSJctW2aMMWbChAnmscceM0FBQY7tRkdHO4JcRkaGiYmJMXV1dU7ruPbaa8306dONMSeO3aBBg5zeb2xsNLGxsSYtLc0YY8zKlSvNd/8WKS8vd/qlApyvTgYrY4xJTk42iYmJxpimwWrFihWmS5cu5tChQ45lDx48aPz8/Myrr75qjGn+XGrO8uXLTUBAgCkvL3dM27Jli5HUYrDKz883ksyePXvavG/PPvus6dOnj+N1a21n7969m7zfljYkIyPDSGrTH17NbWP16tXG29vbfPvtt6ampsb4+PiYZ555xrHdf/7zn8bHx8cRbhITE82sWbOc1rFv3z4jyRQUFBhjThy7P/3pT07z5OTkGEmO4z5q1Chz9913O83T2u+HCxmXAjuAoqIiHTt2TNdcc43T9KFDh552uRkzZujJJ5/UoEGDNGvWrCaXvjZt2qSbbrpJvXr1UlBQkLp37y5JjvET48ePV11dnXr06KFJkyZp5cqVqqqqOu028/LyZIxRfHy84zJAYGCgnnzySe3cudNp3quuuqpN+9+ca6+9VtnZ2ZKk1atXa8yYMRo2bJiys7O1detWffPNNxo5cqSkEwNbDx48qNDQUKea1q1b56gpNzdXn332mdP7QUFB2rt3b5O6TxUWFqbJkydrzJgxGjt2rFJTU7Vjx46z3i+gI1i4cKHWr1+vd999t8l7W7du1WWXXeY03jM6OlqXXHKJtm7dekbb2bZtmy699FKFhYU5pv3gBz9QSEhIi8tcfvnlGjNmjH7wgx/opptu0h/+8Aft37/faZ7ly5dr0KBBio6OVmBgoB5++GGncWOttZ3NOZM2JCEhoa2HwMnVV18tb29v5eTkaN26derRo4fuuusu5efnq6qqStnZ2Ro8eLC6dOniqGnJkiVONV122WWSpJ07d+rQoUPat2+fHnjgAad5xo4dK0mOy7fNOZvfDxcKb3cXgPbz85//XD/60Y/0/vvva/Xq1Ro7dqxuuukmvf7666qtrdXo0aM1dOhQZWRkKDo6WpIUFxfnGEgeExOj7du3a/Xq1crOztb8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\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,5))\n",
    "tweet_len=tweet[tweet['target']==1]['text'].str.split().map(lambda x: len(x))\n",
    "ax1.hist(tweet_len,color='red')\n",
    "ax1.set_title('disaster tweets')\n",
    "tweet_len=tweet[tweet['target']==0]['text'].str.split().map(lambda x: len(x))\n",
    "ax2.hist(tweet_len,color='green')\n",
    "ax2.set_title('Not disaster tweets')\n",
    "fig.suptitle('Words in a tweet')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "pEgUshSi_ILe",
    "tags": []
   },
   "source": [
    "###  Average word length in a tweet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 480
    },
    "id": "CVXe5YTx_ILe",
    "outputId": "7feaae49-1c61-4038-fc3f-7cd24a3c3bf7",
    "tags": []
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/jovyan/.local/lib/python3.6/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n",
      "/home/jovyan/.local/lib/python3.6/site-packages/seaborn/distributions.py:2619: FutureWarning: `distplot` is a deprecated function and will be removed in a future version. Please adapt your code to use either `displot` (a figure-level function with similar flexibility) or `histplot` (an axes-level function for histograms).\n",
      "  warnings.warn(msg, FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0.98, 'Average word length in each tweet')"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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jSoqKlRAQIB67bXXmjx/zjnnqNTUVKWUUo899pjze6WUGjx4sHrsscdaXUZxcbEC1OrVq5VSSs2ePVv16dNH1dXVNXv+E088oVJSUpo8t2/fPqVpmtqxY0eT5x9//HE1ZMgQ52NA3Xzzza2OTQhhvBtvvFGNHz9eKaXUpEmT1JgxY5RSSh08eFAB6ttvv1VKKfXGG2+ooKAgdfToUee1+fn5KjAwUM2fP18ppdQ777yjWvOn8/XXX1chISGqpKTE+dyWLVsUoJ544gnncykpKc7HGzduVIDav39/q1/b7NmzVVpamvPxmerP1NTUU44/9thjatSoUU2e03Vd9e7dWz3//PNKKaXmzZunALVy5cpWxyZcQ7o+hVvt3buX2tpaMjIymjx//vnnt3jNfffdx9NPP82oUaN46KGHWLlyZZPjWVlZ/OIXv6BXr16EhoaSnJwM4Bx7cu2112Kz2UhJSeGmm27inXfe4fjx46eN88cff0QpRXp6urPLw2q18vTTT7Nnz54m544cObLVr18I4V3+9re/sWbNGj755JNTjm3bto2BAwc2GTMbHx9Pv3792LZtW5vK2b59OwMGDCAyMtL53FlnnUV4eHiL1wwePJhLLrmEs846i1/84he88MILHDx4sMk5r7/+OqNGjSI+Ph6r1cr06dObjLs7U/3ZnMzMTDZs2NCk7gsNDSUnJ+eU+m/EiBGtfQuEi0iiJrzO1KlTyc3N5Y477iAvL4/LLruMG264AYCqqiomTpyIpmnMmzeP9evXk5mZiaZpzoH93bt3Z+fOnbz55pvExcXxxBNP0K9fv1MqvMYaujDXrl1LVlaW82vr1q389NNPTc71xYG/Qoh6ffv25fbbb+ehhx7CbrcbHU4TZrOZ//73vyxfvpwRI0awZMkS+vbty6effgrA+++/z913382UKVP4/PPP2bRpE3/+85+bDOo/Xf3ZEl3XGT9+fJO6Lysri127djWZIWo2mwkMDHTLaxctk0RNuFVqair+/v6sXbu2yfNr1qw57XXdunVj6tSpvP3228ydO5eFCxdSXl7Ojh07OHr0KE899RRjx45lwIABlJaWopRqcn1AQACXXnopf//739myZQtVVVV89NFHAPj7++NwOJqcf8455wBw4MAB0tLSmnylpqZ28F0QQniTxx57jCNHjvDaa681eX7QoEFs376doqIi53MFBQXs2rWLs846C6ivP4BT6pCTDRw4kB07dnDs2DHnc9u2baOsrOy012maxsiRI3nkkUdYuXIlY8aMYd68eQCsXLmSYcOG8cADD3DOOefQp08f52SAxlqqPxviPzn29PR0tm3bRo8ePU6p/xrGpwnjSKIm3CokJIQ77riDGTNm8Mknn7Br1y7++Mc/smvXrhavmTZtGp9//jl79+5l27ZtfPjhhyQlJREaGkpKSgoBAQG8+OKL7N27l2+++Ybf/e53TdY1mjt3Lq+//jqbN28mNzeXhQsXcvz4cQYOHAhAr169yM/P5/vvv6eoqIiqqirS0tK4+eabufXWW3nnnXfIzs5m8+bNvPnmm/ztb39z+/skhPCc2NhYHn74Yf7xj380ef66664jNjaWKVOmsHHjRjZs2MCvfvUrunfvzpQpU4D6+gPgk08+4ejRo1RUVDRbxnXXXUdoaCg33HADmzdv5ocffuDmm29ucfIB1LfoP/HEE6xbt44DBw7wzTff8NNPPznrrn79+rFlyxY+/vhj9u7dywsvvMCHH37Y5B6nqz8b4l+zZg0HDhygqKgIXdeZNm0aDoeDq666ilWrVpGTk8Pq1at59NFHT/mQLQxg9CA50flVVVWp2267TYWFhamwsDB16623qocffrjFyQR33XWX6tOnjwoMDFRRUVHqZz/7mdq6davz+Pvvv6/S0tJUQECAGjp0qFqxYoUym81q3rx5SimllixZos4991wVERGhgoKC1KBBg9Qbb7zhvL6urk79+te/VpGRkQpwDqy12+3qb3/7m+rXr5/y8/NT0dHR6sILL1SLFy92Xguod955x43vlhDC1RpPJmhQXV2tkpKSmkwmUEqpnTt3qssuu0yFhISokJAQdfnll6s9e/Y0ufZ3v/udio2NVYC68cYbWyx348aNavTo0crf31/17t1bvffee00mDyjVdDLB1q1b1WWXXabi4+OVv7+/Sk5OVg8++KCqra1VStXXXbfddpuKjIxUoaGh6te//rV68cUXm0xuOFP9mZmZqYYNG6YCAwObTFzIyclR1113nYqJiXGWff3116t9+/YppeonE5jN5ta/6cJlNKVO6jMSQgghhBBeQbo+hRBCCCG8lCRqQgghhBBeShI1IYQQQggvJYmaEEIIIYSXkkRNCCGEEMJLSaImhBBCCOGlLEYH4C5Hjhzp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PfccABUVFTz//PMcPXqU2NhY7r//fqxW6ynXrlixgg8//BCAyZMnM3bsWJeU/84777BhwwYsFgvx8fHcddddhDSzRdiZfk7tLX/x4sV88803hIXVLwjy61//muHDh59y7Zm2MGpv+c8//zxHjhwBoKqqiuDgYJ555plTru3o62/pd82TP/+uzhvqu8aMqvtOZkRd2JjR9eKZYvFkHXm6ODxZV54pFk/Vm05u61T1ASUlJWrv3r1KKaWqqqrUvffeqw4ePNjknK1bt6q//vWvbovhrrvuUmVlZS0e37Bhg3rqqaeUrutq165davr06S6PweFwqP/7v/9ThYWFTZ539Wvftm2b2rt3r3rggQecz73zzjtq6dKlSimlli5dqt55551Trjt+/Li6++671fHjx5t874rys7KylN1ud8bSXPlKnfnn1N7yFy1apD7++OPTXudwONS0adNUfn6+stls6sEHHzzl/2l7y29s/vz56v3332/2WEdff0u/a578+Xd13lDfNeYNdd/JPFUXNmZ0vXimWDxZR54uDk/WlWeKpTF31psNunTXZ2RkpPMTWlBQEN27d3fpquGu8OOPP3LhhReiaRp9+/alsrKS0tJSl5axZcsWEhISiI2Ndel9TzZw4MBTPhVmZmYyZswYAMaMGUNmZuYp12VlZTF48GCsVitWq5XBgweTlZXlkvKHDBmC+cT2SX379nXrz7+58luj8RZGFovFuYWRK8tXSvH9999z3nnntfm+rdHS75onf/5dnS/Ud415ou47mafqwsaMrhfPFIsn68jTxdEarqorWxuLu+vNBl2667OxwsJC9u/f3+waR7t37+YPf/gDkZGR/OY3vyGp0XZDrvDUU08BcPHFFzNhwoQmx0pKSohptH1VdHQ0JSUlREZGuqz8NWvWtPgfzd2vvayszPlaIiIiKCsrO+Wck7fwcfU2PA2WL19ORkZGi8dP93PqiC+//JKVK1fSu3dvfvvb355SKbRmC6OO2rFjB+Hh4XTr1vLGyK56/Y1/17zp59+VGFnfNWZ03XcyI+vCxrz198KoOrKBN9SVjXmq3pREDaipqeG5557jpptuIjg4uMmxXr168fLLLxMYGMjGjRt55pln+Oc//+mysp944gmioqIoKyvjySefJDExkYEDB7rs/mdit9vZsGED11133SnH3P3aT6Zp2mk39XWnDz/8ELPZzAUXXNDscXf9nCZOnOgc67Jo0SLefvtt7rrrrg7ft61O9wcKXPf6T/e7ZuTPvysxsr5rzOi672TeVBc25i2/F0bVkQ28pa5szFP1Zpfu+oT6X87nnnuOCy64gFGjRp1yPDg4mMDAQACGDx+Ow+GgvLzcZeU3bCcTHh7OiBEjyM7OPuV4UVGR83Fz29d0xKZNm+jVqxcRERGnHHP3a4f6193QnVFaWuocKNpYW7bhaY8VK1awYcMG7r333hYrxDP9nNorIiICk8mEyWRi/Pjx7N27t9myz7SFUUc4HA7Wr19/2k/Krnj9zf2uecPPvysxur5rzOi672RG14WNedvvhZF1ZANvqCsb81S9CV08UVNK8eqrr9K9e3euuOKKZs85duwY6sRSc9nZ2ei6TmhoaLPntlVNTQ3V1dXO73/66SeSk5ObnJOens7KlStRSrF7926Cg4M91u3pztfeID09ne+++w6A7777jhEjRpxyztChQ9m8eTMVFRVUVFSwefNmhg4d6pLys7Ky+Pjjj3nooYcICAho9pzW/Jzaq/GYm/Xr1zfbndKaLYw6YsuWLSQmJjbpMmjMFa+/pd81o3/+XYnR9V1j3lD3nczourAxb/q9MLqObOANdWVjnqg3G3TpBW937tzJn//8Z5KTk52fEn796187P8VNnDiRL774gq+++gqz2Yy/vz+//e1v6devn0vKLygo4NlnnwXqs/Pzzz+fyZMn89VXXznLV0oxd+5cNm/ejL+/P3fddRepqakuKb+mpoa77rqLOXPmOLtAGpft6tf+j3/8g+3bt3P8+HHCw8O59tprGTFiBM8//zxFRUVNpqHv3buXr7/+mjvuuAOoHxuxdOlSoH4a+rhx41xS/tKlS7Hb7c6xDn369OG2226jpKSEf/3rX0yfPr3Fn5Mryt+2bRs5OTlomkZsbCy33XYbkZGRTcoH2LhxI/Pnz3duYeSq8i+66CJeeukl+vTpw8SJE53nuvr1t/S71qdPH4/9/Ls6o+u7xoyu+07m6bqwMaPrxTPF4sk68nRxeLKuPFMsnqo3G3TpRE0IIYQQwpt16a5PIYQQQghvJomaEEIIIYSXkkRNCCGEEMJLSaImhBBCCOGlJFETQgghhPBSkqgJIYQQQngpSdSET7j77rv56aefvOY+QgjRWlJ/iY6QRE0IIYQQwkvJgrfC67344ousXr0ai8WCyWTi6quvZsCAAbz99tscOnSI2NhYbrrpJgYNGsSuXbv4+9//zt/+9jdiYmLIycnh8ccf58knn+TDDz885T5XXXWV0S9PCNGJSf0lOkwJ4QPuuusutXnzZqWUUsXFxWrq1Klqw4YNyuFwqM2bN6upU6eqsrIypZRS7777rpo5c6aqra1VDzzwgPrvf//b7H2EEMITpP4SHSFdn8LnrFy5kmHDhjF8+HBMJhODBw8mNTWVjRs3AnDNNddQVVXF9OnTiYqK4pJLLjE4YiGEqCf1l2gri9EBCNFWRUVF/PDDD2zYsMH5nMPhYNCgQQBYLBbGjh3LvHnzuPHGG50bUAshhNGk/hJtJYma8DnR0dFccMEF3HHHHc0eLykp4YMPPmDs2LG8/fbb/PWvf8XPz8/DUQohxKmk/hJtJV2fwidERERQWFgIwAUXXMCGDRvIyspC13Xq6urYtm0bxcXFKKV46aWXGDduHHfeeSeRkZEsWrSo2fsIIYQnSP0lOkJmfQqfkJmZyZtvvkl1dTWTJ09mwIABLFiwgAMHDmAymUhLS+PWW29l/fr1fPvtt/z1r3/FYrFQUlLCH/7wBx588EEGDBhwyn2uvPJKo1+aEKKTk/pLdIQkakIIIYQQXkq6PoUQQgghvJQkakIIIYQQXkoSNSGEEEIILyWJmhBCCCGEl5JETQghhBDCS0miJoQQQgjhpSRRE0IIIYTwUpKoCSGEEEJ4KUnUhBBCCCG81P8Dwfow9SI639QAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig,(ax1,ax2)=plt.subplots(1,2,figsize=(10,5))\n",
    "word=tweet[tweet['target']==1]['text'].str.split().apply(lambda x : [len(i) for i in x])\n",
    "sns.distplot(word.map(lambda x: np.mean(x)),ax=ax1,color='red')\n",
    "ax1.set_title('disaster')\n",
    "word=tweet[tweet['target']==0]['text'].str.split().apply(lambda x : [len(i) for i in x])\n",
    "sns.distplot(word.map(lambda x: np.mean(x)),ax=ax2,color='green')\n",
    "ax2.set_title('Not disaster')\n",
    "fig.suptitle('Average word length in each tweet')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "id": "6NRUZcUo_ILf",
    "tags": []
   },
   "outputs": [],
   "source": [
    "def create_corpus(target):\n",
    "    corpus=[]\n",
    "    \n",
    "    for x in tweet[tweet['target']==target]['text'].str.split():\n",
    "        for i in x:\n",
    "            corpus.append(i)\n",
    "    return corpus"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "nwxtu1Sm_ILf",
    "tags": []
   },
   "source": [
    "### Common stopwords in tweets"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "GxyIXyPe_ILf",
    "tags": []
   },
   "source": [
    "First we  will analyze tweets with class 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "id": "wD2Z8SC__ILg",
    "tags": []
   },
   "outputs": [],
   "source": [
    "corpus=create_corpus(0)\n",
    "\n",
    "dic=defaultdict(int)\n",
    "for word in corpus:\n",
    "    if word in stop:\n",
    "        dic[word]+=1\n",
    "        \n",
    "top=sorted(dic.items(), key=lambda x:x[1],reverse=True)[:10] \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 286
    },
    "id": "1T2dSQXK_ILg",
    "outputId": "1712a0cc-34c5-43af-881c-403b8929014d",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BarContainer object of 10 artists>"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x,y=zip(*top)\n",
    "plt.bar(x,y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Dr55rAMk_ILg",
    "tags": []
   },
   "source": [
    "Now,we will analyze tweets with class 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 282
    },
    "id": "Hl4hcagJ_ILh",
    "outputId": "ec6b8a74-0432-4d09-bdd1-1cbba1d90442",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BarContainer object of 10 artists>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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oUAgoOzsbLlcLiUmJio1NVUnTpyQ1+tVSUmJHA6Hjh07pt/97nc6f/680tLSVFxcrMzMzJj2smDBAm3dulVNTU364x//eMM++tKuXbv0zjvvSJKKior08ccf65133lF2drYefvhhzZkzp0/rS9KvfvUrtba26tKlS5o1a1afXuHw+X0/efJkSZdv/idJjz76qB588MGY1rvR2BYsWKBZs2apoaFBCQkJWrlypTIyMtTc3KwXX3xR58+fV15env76179q69atMevl2n2dl5endevWafz48Tpy5IjcbreeeeYZJSQkxKzmb3/72/DxVFhYqEOHDqm5uVmJiYlavHixvvzlL2v79u06deqUmpub5fF4tGzZspjVv+LK/7O2tjZVVFSoq6tLPT09WrRoke6///6Y1/u8a4+BU6dOaefOnRo5cqRGjBgRv8mVscipU6fM8uXLjTHGHDx40Hzve98zLS0tJhQKmdWrV5tDhw6ZS5cumZ/+9Kemvb3dGGPM3r17zaZNm2Ley/z582/ZR1/68MMPzfLly825c+fMuXPnTGlpqTl27JgpLi4Oj7s/dHR0GGOMuXDhglm+fLk5c+ZMn9X6/L5/7733zC9+8QsTCoVMW1ubWbJkiQkGgzGtd6Oxffvb3zaBQMAYY8zWrVvNjh07jDHGlJWVmdraWmOMMW+++Wb42IiFm+3r73znO+b48ePGGGPWr19v6urqYlbziivH0yuvvGK2b99ujDHmwIED5umnnzbGGPOHP/zBPPPMM+bChQsxr33FlZ/lzp07zZ/+9CdjjDGhUMh0dXX1Wc0rbnQMxHLfRqvfb608kIwZM0Yej0eSNGrUKDU3NyspKUknTpzQL3/5S0mX7wwa61n+nfQxYcKEPqv3wQcfaPr06brnnnskSdOnT9ehQ4f6rN7N7N69O3zDvZaWFn366adKTU3t87offPCBHnroIQ0aNEgZGRmaOHGiPvzww5h+UPBGY3O5XJo2bZokyev16l//+pck6fDhw1qxYoUkacaMGdq2bVvM+rjZvh4yZIhGjRoV7uX06dMxq3mjHq6M7ytf+Yo6OzvV1dUlScrNzY3pXxg3c9999+k3v/mNuru7NX369PDY+9KNjoGBwOrQ/8IXvhD+96BBg9TT0yNJGj58uNauXRv3Pu5mTU1NOnDggJ577jklJibqZz/7mS5duhTvtmLiZmNzOp3h03aDBg266jx2X5/Ou9a1x9zFixf7tf4ViYmJ/VJn4sSJ+vnPf66GhgZt2rRJc+bMUUFBQZ/VG8jHt1Vv5N577706d+7cLdfJzs7WmTNndOTIEUlSd3e3Tpw40R/t9ZsJEyYoEAjowoULOn/+vAKBQJ+f37xWV1eXkpOTlZiYqI8//lhHjx7t03qf3/f333+/3nvvPfX09OjMmTM6dOiQxowZE7NakY5t/Pjx2rt3ryTpH//4R8z6kAbGvp4wYYL+/ve/S7ochqmpqUpKSurXHk6fPq2MjAz5fD7NnDlTx48f79N6NzsGXC6Xuru7+7T27Vg1009NTdX48eO1YsUKJSQkKD09/bp1XC6XVqxYoaqqKnV1dSkUCmnWrFkD6nYRveX1elVYWKjVq1dLuvzm3ujRo/u1hylTpuhvf/ubSktL9aUvfUljx47t03qf3/dTpkzRyJEjtXLlSknS/PnzlZGREbNakY7t+9//vl588UX95S9/UV5eXsz6kG68r5OTk2Na43bmzZunzZs36+mnn1ZiYqJ++MMf9mt96fIvmzfeeENOp1P33HOPfvSjH/VpvZsdAzNnztTKlSs1evTouL2Ra9XVOwBgO6tO7wCA7Qh9ALAIoQ8AFiH0AcAihD4AWITQBwCLEPoAYJH/AZ8ymjzCQezSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "\n",
    "corpus=create_corpus(1)\n",
    "\n",
    "dic=defaultdict(int)\n",
    "for word in corpus:\n",
    "    if word in stop:\n",
    "        dic[word]+=1\n",
    "\n",
    "top=sorted(dic.items(), key=lambda x:x[1],reverse=True)[:10] \n",
    "    \n",
    "\n",
    "\n",
    "x,y=zip(*top)\n",
    "plt.bar(x,y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "UaqkbAMx_ILh",
    "tags": []
   },
   "source": [
    "In both of them,\"the\" dominates which is followed by \"a\" in class 0 and \"in\" in class 1."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "QxQNuTVe_ILh",
    "tags": []
   },
   "source": [
    "### Analyzing punctuations."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MgkVXm4X_ILi",
    "tags": []
   },
   "source": [
    "First let's check tweets indicating real disaster."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 337
    },
    "id": "3fJJLs_C_ILi",
    "outputId": "2882472e-95c0-44f1-dda9-794d43257ed8",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BarContainer object of 18 artists>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "corpus=create_corpus(1)\n",
    "\n",
    "dic=defaultdict(int)\n",
    "import string\n",
    "special = string.punctuation\n",
    "for i in (corpus):\n",
    "    if i in special:\n",
    "        dic[i]+=1\n",
    "        \n",
    "x,y=zip(*dic.items())\n",
    "plt.bar(x,y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "plgBvyxS_ILi",
    "tags": []
   },
   "source": [
    "Now,we will move on to class 0."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 337
    },
    "id": "e_1ffbrD_ILi",
    "outputId": "d721a57b-9bb1-4271-ef9e-631f074801c4",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<BarContainer object of 20 artists>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "corpus=create_corpus(0)\n",
    "\n",
    "dic=defaultdict(int)\n",
    "import string\n",
    "special = string.punctuation\n",
    "for i in (corpus):\n",
    "    if i in special:\n",
    "        dic[i]+=1\n",
    "        \n",
    "x,y=zip(*dic.items())\n",
    "plt.bar(x,y,color='green')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "EQYD1pao_ILj",
    "tags": []
   },
   "source": [
    "### Common words ?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "id": "L6y5aUjS_ILj",
    "tags": []
   },
   "outputs": [],
   "source": [
    "\n",
    "counter=Counter(corpus)\n",
    "most=counter.most_common()\n",
    "x=[]\n",
    "y=[]\n",
    "for word,count in most[:40]:\n",
    "    if (word not in stop) :\n",
    "        x.append(word)\n",
    "        y.append(count)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 282
    },
    "id": "z5YAMS8Y_ILj",
    "outputId": "08fe71ae-23ec-4ba5-ade3-ebf90e6a1ac6",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.barplot(x=y,y=x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "u3tZhA9d_ILk",
    "tags": []
   },
   "source": [
    "Lot of cleaning needed !"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "8_PnwdSs_ILk",
    "tags": []
   },
   "source": [
    "### Ngram analysis"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "tAIgaAvE_ILk",
    "tags": []
   },
   "source": [
    "we will do a bigram (n=2) analysis over the tweets.Let's check the most common bigrams in tweets."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "id": "N15pbWGx_ILk",
    "tags": []
   },
   "outputs": [],
   "source": [
    "def get_top_tweet_bigrams(corpus, n=None):\n",
    "    vec = CountVectorizer(ngram_range=(2, 2)).fit(corpus)\n",
    "    bag_of_words = vec.transform(corpus)\n",
    "    sum_words = bag_of_words.sum(axis=0) \n",
    "    words_freq = [(word, sum_words[0, idx]) for word, idx in vec.vocabulary_.items()]\n",
    "    words_freq =sorted(words_freq, key = lambda x: x[1], reverse=True)\n",
    "    return words_freq[:n]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 337
    },
    "id": "-McUR_eY_ILk",
    "outputId": "a341561b-f94c-4fe2-ea77-8481508a3872",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "top_tweet_bigrams=get_top_tweet_bigrams(tweet['text'])[:10]\n",
    "x,y=map(list,zip(*top_tweet_bigrams))\n",
    "sns.barplot(x=y,y=x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "OgTvY4ZA_ILl",
    "tags": []
   },
   "source": [
    "We will need lot of cleaning here.."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "f2YFV_JY_ILl",
    "tags": []
   },
   "source": [
    "## Data Cleaning\n",
    "As we know,twitter tweets always have to be cleaned before we go onto modelling.So we will do some basic cleaning such as spelling correction,removing punctuations,removing html tags and emojis etc.So let's start."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "giSY7dMs_ILl",
    "outputId": "70649954-fe83-4897-b49a-956426d87fbb",
    "tags": [
     "block:preprocess_data",
     "prev:eda_data"
    ]
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10876, 5)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=pd.concat([tweet,test])\n",
    "df.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "qIOyVrSB_ILm",
    "tags": []
   },
   "source": [
    "### Removing urls"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "id": "VaEIZCtG_ILm",
    "tags": [
     "block:",
     "prev:pre",
     "prev:preprocess_data"
    ]
   },
   "outputs": [],
   "source": [
    "def remove_URL(text):\n",
    "    url = re.compile(r'https?://\\S+|www\\.\\S+')\n",
    "    return url.sub(r'',text)\n",
    "\n",
    "df['text']=df['text'].apply(lambda x : remove_URL(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MJnMSv_C_ILm",
    "tags": []
   },
   "source": [
    "### Removing HTML tags"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "id": "UrB9R_Fe_ILn",
    "tags": [
     "block:"
    ]
   },
   "outputs": [],
   "source": [
    "def remove_html(text):\n",
    "    html=re.compile(r'<.*?>')\n",
    "    return html.sub(r'',text)\n",
    "df['text']=df['text'].apply(lambda x : remove_html(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1c20CxzO_ILn",
    "tags": []
   },
   "source": [
    "### Removing Emojis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "id": "G5EHnHOC_ILo",
    "tags": [
     "block:"
    ]
   },
   "outputs": [],
   "source": [
    "# Reference : https://gist.github.com/slowkow/7a7f61f495e3dbb7e3d767f97bd7304b\n",
    "def remove_emoji(text):\n",
    "    emoji_pattern = re.compile(\"[\"\n",
    "                           u\"\\U0001F600-\\U0001F64F\"  # emoticons\n",
    "                           u\"\\U0001F300-\\U0001F5FF\"  # symbols & pictographs\n",
    "                           u\"\\U0001F680-\\U0001F6FF\"  # transport & map symbols\n",
    "                           u\"\\U0001F1E0-\\U0001F1FF\"  # flags (iOS)\n",
    "                           u\"\\U00002702-\\U000027B0\"\n",
    "                           u\"\\U000024C2-\\U0001F251\"\n",
    "                           \"]+\", flags=re.UNICODE)\n",
    "    return emoji_pattern.sub(r'', text)\n",
    "\n",
    "df['text']=df['text'].apply(lambda x: remove_emoji(x))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "YoiLOdZe_ILo",
    "tags": []
   },
   "source": [
    "### Removing punctuations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "id": "C4hZZQBV_ILp",
    "tags": [
     "block:",
     "prev:preprocess_data"
    ]
   },
   "outputs": [],
   "source": [
    "def remove_punct(text):\n",
    "    table=str.maketrans('','',string.punctuation)\n",
    "    return text.translate(table)\n",
    "\n",
    "df['text']=df['text'].apply(lambda x : remove_punct(x))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "uNkNHy7W_ILp",
    "tags": []
   },
   "source": [
    "### Spelling Correction\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "DAjtB__8_ILp",
    "tags": []
   },
   "source": [
    "Even if I'm not good at spelling I can correct it with python :) I will use `pyspellcheker` to do that."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Corpus Creation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "QWKIMprt_ILr",
    "outputId": "e2c533cf-3700-4df4-b4c0-a41428e4a5b0",
    "tags": [
     "block:corpus_creation",
     "prev:preprocess_data"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 10876/10876 [00:02<00:00, 4629.46it/s]\n"
     ]
    }
   ],
   "source": [
    "def create_corpus(df):\n",
    "    corpus=[]\n",
    "    for tweet in tqdm(df['text']):\n",
    "        words=[word.lower() for word in word_tokenize(tweet) if((word.isalpha()==1) & (word not in stop))]\n",
    "        corpus.append(words)\n",
    "    return corpus\n",
    "corpus=create_corpus(df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Download Glove"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "rUdI7CrYfsOc",
    "outputId": "23e87b84-e26e-4b41-af73-7565eabee6a6",
    "tags": [
     "block:"
    ]
   },
   "outputs": [],
   "source": [
    "# download files\n",
    "import wget\n",
    "import zipfile\n",
    "wget.download(\"http://nlp.stanford.edu/data/glove.6B.zip\", './glove.6B.zip')\n",
    "    \n",
    "with zipfile.ZipFile(\"glove.6B.zip\", 'r') as zip_ref:\n",
    "    zip_ref.extractall(\"./\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Embedding Step"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "id": "vvY4lcdn_ILr",
    "tags": [
     "block:embedding_step",
     "prev:corpus_creation"
    ]
   },
   "outputs": [],
   "source": [
    "embedding_dict={}\n",
    "with open(\"./glove.6B.100d.txt\",'r') as f:\n",
    "    for line in f:\n",
    "        values=line.split()\n",
    "        word=values[0]\n",
    "        vectors=np.asarray(values[1:],'float32')\n",
    "        embedding_dict[word]=vectors\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "id": "tIqnmcc6_ILr",
    "tags": [
     "block:"
    ]
   },
   "outputs": [],
   "source": [
    "MAX_LEN=50\n",
    "tokenizer_obj=Tokenizer()\n",
    "tokenizer_obj.fit_on_texts(corpus)\n",
    "sequences=tokenizer_obj.texts_to_sequences(corpus)\n",
    "\n",
    "tweet_pad=pad_sequences(sequences,maxlen=MAX_LEN,truncating='post',padding='post')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "B4n1eHMp_ILs",
    "outputId": "2c027b1c-6dfe-41af-89ce-663e38c227e9",
    "tags": [
     "block:"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of unique words: 20342\n"
     ]
    }
   ],
   "source": [
    "word_index=tokenizer_obj.word_index\n",
    "print('Number of unique words:',len(word_index))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "MBONMhCm_ILs",
    "outputId": "3ce6f1b4-802f-43d7-cd0b-14a79fe9346c",
    "tags": [
     "block:"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 20342/20342 [00:00<00:00, 310979.08it/s]\n"
     ]
    }
   ],
   "source": [
    "num_words=len(word_index)+1\n",
    "embedding_matrix=np.zeros((num_words,100))\n",
    "\n",
    "for word,i in tqdm(word_index.items()):\n",
    "    if i > num_words:\n",
    "        continue\n",
    "    \n",
    "    emb_vec=embedding_dict.get(word)\n",
    "    if emb_vec is not None:\n",
    "        embedding_matrix[i]=emb_vec\n",
    "            "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "Sh1bYaFO_ILs",
    "tags": []
   },
   "source": [
    "## Baseline Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "id": "0ox_ger4_ILs",
    "tags": [
     "block:final_model",
     "prev:embedding_step"
    ]
   },
   "outputs": [],
   "source": [
    "model=Sequential()\n",
    "\n",
    "embedding=Embedding(num_words,100,embeddings_initializer=Constant(embedding_matrix),\n",
    "                   input_length=MAX_LEN,trainable=False)\n",
    "\n",
    "model.add(embedding)\n",
    "model.add(SpatialDropout1D(0.2))\n",
    "model.add(LSTM(64, dropout=0.2, recurrent_dropout=0.2))\n",
    "model.add(Dense(1, activation='sigmoid'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "gNcE-6N0_ILt",
    "outputId": "77f6865e-3642-410b-a263-a75060e0431a",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "embedding (Embedding)        (None, 50, 100)           2034300   \n",
      "_________________________________________________________________\n",
      "spatial_dropout1d (SpatialDr (None, 50, 100)           0         \n",
      "_________________________________________________________________\n",
      "lstm (LSTM)                  (None, 64)                42240     \n",
      "_________________________________________________________________\n",
      "dense (Dense)                (None, 1)                 65        \n",
      "=================================================================\n",
      "Total params: 2,076,605\n",
      "Trainable params: 42,305\n",
      "Non-trainable params: 2,034,300\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "id": "7-iK95sN_ILt",
    "tags": []
   },
   "outputs": [],
   "source": [
    "train=tweet_pad[:tweet.shape[0]]\n",
    "final_test=tweet_pad[tweet.shape[0]:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "-wNkHpK__ILt",
    "outputId": "0d287614-192a-425d-a6a3-a1eb6b757e0a",
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape of train (6471, 50)\n",
      "Shape of Validation  (1142, 50)\n"
     ]
    }
   ],
   "source": [
    "X_train,X_test,y_train,y_test=train_test_split(train,tweet['target'].values,test_size=0.15)\n",
    "print('Shape of train',X_train.shape)\n",
    "print(\"Shape of Validation \",X_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": []
   },
   "source": [
    "## Training Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "gIFqAxRP_ILt",
    "outputId": "1228be0f-5fe5-4df1-e48f-7707f81bf6ef",
    "tags": [
     "block:train_model",
     "prev:final_model"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/5\n",
      "1618/1618 - 118s - loss: 0.6912 - accuracy: 0.5670 - val_loss: 0.6862 - val_accuracy: 0.5841\n",
      "Epoch 2/5\n",
      "1618/1618 - 114s - loss: 0.6043 - accuracy: 0.6840 - val_loss: 0.5433 - val_accuracy: 0.7671\n",
      "Epoch 3/5\n",
      "1618/1618 - 112s - loss: 0.5460 - accuracy: 0.7456 - val_loss: 0.5189 - val_accuracy: 0.7785\n",
      "Epoch 4/5\n",
      "1618/1618 - 112s - loss: 0.5329 - accuracy: 0.7535 - val_loss: 0.5038 - val_accuracy: 0.7846\n",
      "Epoch 5/5\n",
      "1618/1618 - 111s - loss: 0.5153 - accuracy: 0.7645 - val_loss: 0.4931 - val_accuracy: 0.7881\n"
     ]
    }
   ],
   "source": [
    "model.compile(loss='binary_crossentropy', optimizer=Adam(learning_rate=1e-5), metrics=['accuracy'])\n",
    "history=model.fit(X_train,y_train,batch_size=4,epochs=5,validation_data=(X_test,y_test),verbose=2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "5VdeRpW6_ILu",
    "tags": []
   },
   "source": [
    "## Making our submission"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "id": "C2nwzCGZ_ILu",
    "tags": []
   },
   "outputs": [],
   "source": [
    "sample_sub=pd.read_csv('./data/sample_submission.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "id": "skzE80GX_ILu",
    "tags": []
   },
   "outputs": [],
   "source": [
    "y_pre=model.predict(final_test)\n",
    "y_pre=np.round(y_pre).astype(int).reshape(3263)\n",
    "sub=pd.DataFrame({'id':sample_sub['id'].values.tolist(),'target':y_pre})\n",
    "sub.to_csv('submission.csv',index=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "id": "vhkRPayj_ILu",
    "outputId": "cbbca861-390f-4040-9830-79bb6a34e967",
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>target</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   id  target\n",
       "0   0       1\n",
       "1   2       1\n",
       "2   3       1\n",
       "3   9       1\n",
       "4  11       1"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "name": "nlp-getting-started.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "kubeflow_notebook": {
   "autosnapshot": true,
   "docker_image": "",
   "experiment": {
    "id": "new",
    "name": "trial-with-kale"
   },
   "experiment_name": "trial-with-kale",
   "katib_metadata": {
    "algorithm": {
     "algorithmName": "grid"
    },
    "maxFailedTrialCount": 3,
    "maxTrialCount": 12,
    "objective": {
     "objectiveMetricName": "",
     "type": "minimize"
    },
    "parallelTrialCount": 3,
    "parameters": []
   },
   "katib_run": false,
   "pipeline_description": "An NLP pipeline for disaster detection using tweets",
   "pipeline_name": "nlp-getting-started",
   "snapshot_volumes": true,
   "steps_defaults": [
    "label:access-ml-pipeline:true",
    "label:access-rok:true"
   ],
   "volume_access_mode": "rwm",
   "volumes": [
    {
     "annotations": [],
     "mount_point": "/home/jovyan",
     "name": "nlp-getting-started-kale-workspace-6tp8v",
     "size": 20,
     "size_type": "Gi",
     "snapshot": false,
     "type": "clone"
    }
   ]
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
